

    * -- означает любое количество символов в строке, предшествующих "звездочке", втом числе и нулевое число символов

    . -- означает не менее одного любого символа, за исключением символа переводастроки (\n)

    ^ -- означает начало строки, но иногда, в зависимости от контекста, означаетотрицание в регулярных выражениях

    $ -- в конце регулярного выражения соответствует концу строки.

        Выражение "^$" соответствует пустой строке.

    []

        "[xyz]" -- соответствует одному из символов x, y или z
    
        "[c-n]" соответствует одному из символов в диапазоне от c до n, включительно
    
        "[B-Pk-y]" соответствует одному из символов в диапазоне от B до P или в диапазонеот k до y, включительно.
    
        "[a-z0-9]" соответствует одному из символов латиницы в нижнем регистре или цифре.
    
        "[^b-d]" соответствует любому символу, кроме символов из диапазона от b до d, включительно. В данном случае, метасимвол ^ означает отрицание.

    \ -- служит для экранирования специальных символов, это означает, чтоэкранированные символы должны интерпретироваться буквально, т.е. как простые символы

        Комбинация "\$" указывает на то, что символ "$" трактуется как обычный символ, а не какпризнак конца строки в регулярных выражениях. Аналогично, комбинация "\\" соответствуетпростому символу "\".

    \<...\> -- отмечают границы слова

        "\<the\>" соответствует слову "the", и не соответствует словам "them", "there","other" и т.п

    ? -- означает, что предыдущий символ или регулярное выражение встречается 0 или 1 раз

    + -- указывает на то, что предыдущий символ или выражение встречается 1 илиболее раз. Играет ту же роль, что и символ "звездочка" (*), за исключением случая нулевогоколичества вхождений.

    \{ \} -- задают число вхождений предыдущеговыражения

        "[0-9]\{5\}" -- в точности соответствует подстроке из пяти десятичных циф

    ( ) -- предназначены для выделения групп регулярных выражений. Ониполезны при использовании с оператором "|" и при извлечении подстроки с помощью команды expr

    | -- выполняет роль логического оператора "ИЛИ" в регулярныхвыражениях и служит для задания набора альтернатив.

        $ egrep 're(a|e)d' misc.t

    Классы символов POSIX. [:class:]

        Класс [:alnum:] -- соответствует алфавитным символам и цифрам. Эквивалентно выражению A-Za-z0-9.
    
        Класс [:alpha:] -- соответствует символам алфавита. Эквивалентно выражению A-Za-z.
    
        Класс [:blank:] -- соответствует символу пробела или символу табуляции.
    
        Класс [:cntrl:] -- соответствует управляющим символам (control characters).
    
        Класс [:digit:] -- соответствует набору десятичных цифр. Эквивалентно выражению 0-9.
    
        Класс [:graph:] (печатаемые и псевдографические символы) -- соответствует набору символовиз диапазона ASCII 33
         - 126. Это то же самое, что и класс [:print:], за исключением символапробела.
         - 
        Класс [:lower:] -- соответствует набору алфавитных символов в нижнем регистре.
        Эквивалентно выражению a-z.
    
        Класс [:print:] (печатаемые символы) -- соответствует набору символов из диапазона ASCII 32- 126. По своему составу этот класс идентичен классу [:graph:], описанному выше, заисключением того, что в этом классе дополнительно присутствует символ пробела.
    
        Класс [:space:] -- соответствует пробельным символам (пробел и горизонтальная табуляция).
    
        Класс [:upper:] -- соответствует набору символов алфавита в верхнем регистре. Эквивалентновыражению A-Z.
    
        Класс [:xdigit:] -- соответствует набору шестнадцатиричных цифр. Эквивалентно выражению
        0-9A-Fa-f

            grep [[:digit:]] test.fi